package be.ipl.diapero.domaine;

import java.io.Serializable;

import javax.persistence.Embeddable;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;

@Embeddable
@SuppressWarnings("serial")
public class De implements Serializable {

	public enum Couleur {
		BLANC, ROUGE, NOIR,
	}
	
	@NotNull
	@Min(1)
	@Max(6)
	private int valeur;
	
	@NotNull
	@Enumerated(EnumType.STRING)
	private Couleur couleur;
	
	protected De() {
		super();
	}
	
	public De(int valeur, Couleur couleur) {
		this.valeur = valeur;
		this.couleur = couleur;
	}

	public Couleur getCouleur() {
		return couleur;
	}

	public int getValeur() {
		return valeur;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((couleur == null) ? 0 : couleur.hashCode());
		result = prime * result + valeur;
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		De other = (De) obj;
		if (couleur != other.couleur)
			return false;
		if (valeur != other.valeur)
			return false;
		return true;
	}
}
